/**
 * Used to package and output gzip. Note that this does not work properly in Vite, the specific reason is still being investigated
 * https://github.com/anncwb/vite-plugin-compression
 */
import type { PluginOption } from 'vite';
import compressPlugin from 'vite-plugin-compression';

export function configCompressPlugin({
                                         compress,
                                         deleteOriginFile = false,
                                     }: {
    compress: string;
    deleteOriginFile?: boolean;
}): PluginOption[] {
    const compressList = compress.split(',');

    const plugins: PluginOption[] = [];

    if (compressList.includes('gzip')) {
        plugins.push(
            compressPlugin({
                ext: '.gz',
                deleteOriginFile,
            }),
        );
    }

    if (compressList.includes('brotli')) {
        plugins.push(
            compressPlugin({
                ext: '.br',
                algorithm: 'brotliCompress',
                deleteOriginFile,
            }),
        );
    }
    return plugins;
}